<?php
class AMovimientoCaja {

	public function __construct() {
	}
	public function actualizarCuenta(EFacade & $facade) {
		$ezpdo_=getManager();
		$session=$facade->session;
		$docMC = & $facade->getDocumentRoot();
		$concepto=$docMC->concepto;
		$cuentaDesde=$docMC->desde;
		$cuentaHacia=$docMC->hacia;
		$monto=$docMC->monto;
		$saldoViejoDesde=$cuentaDesde->getSaldo();
		$saldoNuevoDesde=$saldoViejoDesde - $monto;
		$cuentaDesde->saldo=$saldoNuevoDesde;
		$cuentaDesde->cuentaContable->disminuye($monto,$docMC);
		$cuentaDesde->cuentaContable->commit();
		$saldoViejoHacia=$cuentaHacia->getSaldo();
		$saldoNuevoHacia=$saldoViejoHacia + $monto;
		$cuentaHacia->saldo=$saldoNuevoHacia;
		$cuentaHacia->cuentaContable->aumenta($monto,$docMC);
		$cuentaHacia->cuentaContable->commit();
		$transaccionDesde=$session->create('MTransaccion');
		$fechaTransaccion=time();
		$montoTransaccion=$monto;
		$transaccionDesde->esCaja=TRUE;
		$transaccionDesde->fechaTransaccion=$fechaTransaccion;
		$transaccionDesde->montoTransaccion=$montoTransaccion;
		$transaccionDesde->debe=$montoTransaccion;
		$docMC->commit();
		$docMC->numero = $docMC->getDocumentNumber();
		$docMC->diferenciador = $docMC->getDocumentDifer();
		$docMC->commit();
		$transaccionDesde->descripcion=$docMC->numero.' - d&eacute;bito por '.$concepto." - desde ".$docMC->desde->nombre." hacia ".$docMC->hacia->nombre;
		$transaccionDesde->cuentaCaja=$cuentaDesde;
		$transaccionDesde->documento=$docMC;
		$transaccionDesde->saldoCuenta = $saldoNuevoDesde;
		$transaccionDesde->commit();
		$transaccionHacia=$session->create('MTransaccion');
		$transaccionHacia->esCaja=TRUE;
		$transaccionHacia->fechaTransaccion=$fechaTransaccion;
		$transaccionHacia->montoTransaccion=$montoTransaccion;
		$transaccionHacia->haber=$montoTransaccion;
		$transaccionHacia->descripcion=$docMC->numero.'- cr&eacute;dito por '.$concepto." - desde ".$docMC->desde->nombre." hacia ".$docMC->hacia->nombre;
		$transaccionHacia->cuentaCaja=$cuentaHacia;
		$transaccionHacia->documento=$docMC;
		$transaccionHacia->saldoCuenta = $saldoNuevoHacia;
		$transaccionHacia->commit();
		$workflowMC = & $docMC->getWorkflowRef();
		$facade->session->refresh($workflowMC);
		$transSetMC = & EFacade :: getCurrentTransSetAuto($workflowMC, /* AGENT */	2);
		$transMC = & $transSetMC->getTransByName('t2');
		$user=NULL;
		$facade->fireTrans($transMC, $user, 'Verificación de pago completo', FALSE);
		$workflowMC->epSetDirty(TRUE); 
		$docMC->epSetDirty(TRUE); 
		$facade->saveWorkflow();	
	}
}
?>